/**
 * Chargement des données JSON pour l'affichage du graphe Highcharts DeltaPM.
 */
function loadGraphDeltaPm(nivGeog, geog, idGeog) {
	var quota = "";
	if ($('#quotaRadioMarcheId').get(0).checked) {
		quota = "QM";
	} else if ($('#quotaRadioProduitId').get(0).checked) {
		quota = "QP";
	}
	var product    	= $('#productId').get(0).value;
	var source 		= $('#sourceId').get(0).value;
	var periode 	= $('#periodId').get(0).value;
	var unite 		= $('#unitId').get(0).value;
	
	var indicateur = "";
	if ($('#paramDeltaPMIndicateurId').length != 0) {
		indicateur = $('#paramDeltaPMIndicateurId').get(0).value;
	} else {
		if (statutProduit == 'complet') {
			indicateur = 'D_PM';
		} else if (statutProduit == 'pasDeMarche') {
			indicateur = 'EVOL_VOL';
		} 
	}
	
	// A l'UGA, on force l'indicateur DeltaPM 
	if (nivGeog == 'UGA') {
		if (indicateur != 'D_PM') {
			Ext.Msg.alert('Attention', 'A l\'UGP, l\'indicateur est toujours le &Delta;PM');
		}
		indicateur = 'D_PM';
		$('#paramDeltaPMIndicateurId').html(listeIndicateurs);
		$('#paramDeltaPMIndicateurId').val('D_PM');
	} 
	
	if (statutProduit == 'complet' || statutProduit == 'pasDeMarche') {
		$('#buttonConfigDeltaPMId').css("display", "block");
		$('#legendeGraphDeltaPm').css("display", "block");
		$.ajax({
	 		traditional: true, 
	 		type: 'POST', 
	 		url: './dataDeltaPm.do',
	 		target: "_blank", 
	 		data : {
	 			nivGeog: 	nivGeog,
				geog: 		geog,
				source: source,
				product:	product,
				france: 	franceGraphDelta, 
				zone: 		zoneGraphDelta, 
				region: 	regionGraphDelta,
				idGeog: 	idGeog,
				periode: 	periode,
				unite:		unite,
				quota:		quota,
				indicateur:	indicateur
	 		},
	 		error: function () {},
	 		success: function(result) { 
	 			displayGraphDeltaPm(result, nivGeog, geog); 
	 		}
	 	}); 
	} else {
		$('#buttonConfigDeltaPMId').css("display", "none");
		$('#legendeGraphDeltaPm').css("display", "none");
		$('#graphDeltaPm').html('<div align="center" style="padding-top:50px;" class="text-general">Non applicable pour ce produit</div>');
	}
}

/**
 * Affichage du graphe Highcharts DeltaPM.
 */
function displayGraphDeltaPm(json, nivGeog, geog) {
	
	var clickDetected = false;
	
	var minJsonData = 1000000;
	
	var maxJsonData = -10000;
	
	if (isDeltaPmCfVisible) {
		for (val in json.data1) {
			minJsonData = Math.min(json.data1[val].y, minJsonData);
			maxJsonData = Math.max(json.data1[val].y, maxJsonData);
		}
	}
	
	if (isDeltaPm3mVisible) {
		for (val in json.data2) {
			minJsonData = Math.min(json.data2[val].y, minJsonData);
			maxJsonData = Math.max(json.data2[val].y, maxJsonData);
		}
	}
	
	if (isDeltaPmMoisVisible) {
		for (val in json.data3) {
			minJsonData = Math.min(json.data3[val].y, minJsonData);
			maxJsonData = Math.max(json.data3[val].y, maxJsonData);
		}
	}
	
	var scroll;
	
	var max;
	
	if ((json.nbData-1) <= 5) {
		max = json.nbData -1; 
		scroll = false;
	} else {
		max = 5;
	 	scroll = true;
	}
	
	// Affichage du titre du graphe
	var title = "";
	if (nivGeog == geog) { // Niveau France
		title = nivGeog;
	} else { // Autres niveaux 
		title = geog;// nivGeog + ' ' + geog;
	}
	
	var indicateurTitle = "";
	if ($('#paramDeltaPMIndicateurId').html() == undefined) {
		$('#paramDeltaPMIndicateurId').html(listeIndicateurs);
		if (statutProduit == 'complet') {
			indicateurTitle = "&Delta;PM (pt)";
		} else if (statutProduit == 'pasDeMarche') {
			indicateurTitle = "EVOL VOL (%)";
		}
	} else {
		indicateurTitle = $('#paramDeltaPMIndicateurId').get(0).options[$('#paramDeltaPMIndicateurId').get(0).selectedIndex].text;
	}
	 
	chart = new Highcharts.Chart({
		chart: {
			renderTo: 'graphDeltaPm',
			type: 'column'
			//ignoreHiddenSeries: false
            //zoomType: 'xy'
        },
        credits: {
            enabled: false
        },
        exporting: {
            enabled: true
        },
        title: {
            text: '<span style="font-size:13px;font-family:Arial;">' + lib_marche + ' : ' + title + ' (' + lib_mois + ')' + "</span>",
            useHTML: true
        },
        subtitle: {
        	text: '<span style="font-size:10px;font-family:Arial;"><b>Source :</b> ' + ' ' + $('#sourceId').get(0).options[$('#sourceId').get(0).selectedIndex].text + ' - <b>P&eacute;riode :</b> ' + $('#periodId').get(0).options[$('#periodId').get(0).selectedIndex].text + ' - <b>Indicateur produit :</b> ' + indicateurTitle + '</span>',
            useHTML: true
        },
        xAxis: {
        	min:0,
            max:max,
            categories: json.categ,
            labels: {
                rotation: 0,
                align: 'center',
                format: '{value}',
                style: {
                	fontSize: '9px',
                	fontFamily: 'Arial'
                }
            }		
        },
        scrollbar: {
            enabled: scroll
        },
        rangeSelector: {
            enabled:false
        },
        yAxis: {
            title: {
                text: '<span style="font-size:11px;font-family:Arial;font-weight:normal;">' + indicateurTitle + '</span>',
                useHTML: true
            },
            labels: {
                format: '{value}',
                style: {
                    fontSize: '9px',
                	fontFamily: 'Arial'
                }
            },
            gridLineDashStyle: 'dot',
            min:minJsonData,
            max:maxJsonData
        },
        tooltip: {
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0"><b>{point.y:.1f}</b></td></tr>' 
        },
        legend: {
            layout: 'horizontal',
            align: 'center',
            x: 0,
            verticalAlign: 'bottom',
            y: 0,
            floating: false,
            backgroundColor: '#FFFFFF',
            itemStyle: {
            	fontSize : '10px',
            	fontFamily: 'Arial'
            },
            useHTML: true
        },
        plotOptions: {
            column: {
            	//borderRadius: 5,
            	groupPadding: 0.2,
                //pointWidth: 25,
                pointPadding: 0.1,
            	point: {
                    events: {
                    	click: function(event) {
	                		 if (clickDetected) {
	                             // Double clic sur le graphe  
	                         	if (this.niveau != 'UGP') {
	                         		globalNivGeog = this.niveau;
	 	                        	globalGeog = this.category;
	 	                        	idGeog = this.idGeog;
	 	                        	// Ouverture de l arbre de gauche
	 	      		  				$(this).jstree("open_node", $("#" + idGeog + "-" + globalNivGeog).parent().parent().parent().children("a"));
	 	      		  				$("#" + idGeog + "-" + globalNivGeog).addClass("jstree-clicked");
	 	    	  		  			$("#" + idGeog + "-" + globalNivGeog).click();
	                         	}
	                             clickDetected = false;
	                         } else {
	                             clickDetected = true;
	                             setTimeout(function() {
	                                 clickDetected = false;
	                             }, 500); 
	                         }
                    	}
                    }
            	}
            },
            series: {
                shadow: false,
	            events: {
	            	legendItemClick: function(event) {
	            		chart.options.plotOptions.column.pointWidth = 30;
	            		if (this.name == 'Delta PM CF') {
	            			isDeltaPmCfVisible = !isDeltaPmCfVisible;
	            		} else if (this.name == 'Delta PM 3M') {
	            			isDeltaPm3mVisible = !isDeltaPm3mVisible;
	            		} else {
	            			isDeltaPmMoisVisible = !isDeltaPmMoisVisible;
	            		}
	                }
	            }
            }
        },
        series: [
	        {
	            name: indicateurTitle + ' CF',
				color: '#A7DC8E',
	            data: json.data1,
				visible:isDeltaPmCfVisible,
				dataLabels: {
	                enabled: true,
	                color: '#000000',
	                fontWeigth : 'Bold',
	                useHTML: true,
	                formatter: function () {
	                	if (isDeltaPmCfVisible) {
	                		return '<span style="font-size:8px;">' + this.y + '</span>';
	                	} else {
	                		return '';
	                	}
	                }
	            }
	        }
	        , 
	        {
	            name: indicateurTitle + ' 3M',
				color: '#B7A2E8',
	            data: json.data2,
	            visible:isDeltaPm3mVisible,
				dataLabels: {
	                enabled: true,
	                color: '#000000',
	                fontWeigth : 'Bold',
	                useHTML: true,
	                formatter: function () {
	                	if (isDeltaPm3mVisible) {
	                		return '<span style="font-size:8px;">' + this.y + '</span>';
	                	} else {
	                		return '';
	                	}
	                }
	            }
	         }
	         , 
	         {
	            name: indicateurTitle + ' Mois',
				color: '#A2B7F9',
	            data: json.data3,
	            visible:isDeltaPmMoisVisible,
	            dataLabels: {
	                enabled: true,
	                color: '#000000',
	                fontWeigth : 'Bold',
	                useHTML: true,
	                formatter: function () {
	                	if (isDeltaPmMoisVisible) {
	                		return '<span style="font-size:8px;">' + this.y + '</span>';
	                	} else {
	                		return '';
	                	}
	                }
	            }
	        }
         ]
    });
	
}